Matlab中freqz函数使用

您所在的位置:网站首页 figure怎么用 matlab Matlab中freqz函数使用

Matlab中freqz函数使用

2023-08-19 20:54| 来源: 网络整理| 查看: 265

目录

语法

输入参数

输出参数

说明

示例

传递函数的频率响应

二阶部分的频率响应

FIR滤波器的频率响应

FIR带通滤波器的频率响应

        freqz函数是求解数字滤波器的频率响应。

语法 [h,w] = freqz(b,a,n) [h,w] = freqz(sos,n) [h,w] = freqz(d,n) [h,w] = freqz(___,n,'whole') [h,f] = freqz(___,n,fs) [h,f] = freqz(___,n,'whole',fs) h = freqz(___,w) h = freqz(___,f,fs) freqz(___) 输入参数

b,a-传递函数系数

        传递函数系数,指定为矢量。 用b和a表示传递函数:

        例如:b = [1 3 3 1]/6和a = [3 0 1 0]/3指定一个三阶巴特沃斯滤波器,其归一化3dB频率为0.5πrad/sample。

n —计算点数

        计算点数,指定为不少于2的正整数标量。当n不存在时,默认为512。为获得最佳结果,请将n设置为大于过滤器阶数的值。

sos —二阶部分的系数

        二阶部分系数,指定为矩阵。 sos是一个K×6矩阵,其中节数K必须大于或等于2。如果节数小于2,则该函数将输入视为分子向量。 sos的每一行都对应一个二阶(双二阶)滤波器的系数。 sos的第i行对应于[bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)]。

        例如:s = [2 4 2 6 0 2; 3 3 0 6 0 0]指定具有标准化3 dB频率0.5πrad/sample的三阶巴特沃斯滤波器。

d-数字滤波器

        数字滤波器,指定为digitalFilter对象。 使用designfilt根据频率响应规范生成数字滤波器。

        例如:d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5)指定一个三阶Butterworth滤波器,其归一化3dB频率为0.5πrad/sample。

fs —采样率

        采样率,指定为正标量。 当时间单位为秒时,fs以赫兹表示。

w —角频率

        角频率,指定为矢量,以弧度/样本表示。 w必须至少包含两个元素,因为否则该函数会将其解释为n。 w =π对应于奈奎斯特频率。

f —频率

        频率,指定为向量。 f必须至少包含两个元素,否则函数会将其解释为n。 当时间单位为秒时,f以赫兹表示。

输出参数

h-频率响应

        频率响应,以向量形式返回。 如果指定n,则h的长度为n。 如果未指定n或将n指定为空向量,则h的长度为512。

        如果freqz的输入是单精度,则该函数使用单精度算法计算频率响应。 输出h是单精度。

w —角频率

        角频率,作为矢量返回。 w的取值范围是0到π。 如果在输入中指定“ whole”,则w中的值范围为0到2π。 如果指定n,则w的长度为n。 如果未指定n或将n指定为空向量,则w的长度为512。

f —频率

        频率,作为以赫兹表示的矢量返回。 f的取值范围是0到fs / 2 Hz。 如果在输入中指定“ whole”,则f中的值范围为0到fs Hz。 如果指定n,则f的长度为n。 如果未指定n或将n指定为空向量,则f的长度为512。

说明

[w,h] = freqz(b,a,n) 返回具有存储在b和a中的传递函数系数的数字滤波器的n点频率响应矢量h和相应的角频率矢量w。

[h,w] = freqz(sos,n) 返回与二阶部分矩阵sos相对应的n点复频响应。

[h,w] = freqz(d,n) 返回数字滤波器d的n点复频响应。

[h,w] = freqz(___,n,'whole')返回整个单位圆上n个采样点的频率响应。

[h,f] = freqz(___,n,fs) 返回数字滤波器的频率响应矢量h和相应的物理频率矢量f,该数字滤波器设计为对以fs速率采样的信号进行滤波。

[h,f] = freqz(___,n,'whole',fs)返回介于0到fs之间的n个点处的频率向量。

h = freqz(___,w) 返回以w中提供的归一化频率评估的频率响应向量h。

h = freqz(___,f,fs) 返回以f中提供的物理频率评估的频率响应矢量h。

freqz(___) 没有输出参数时,将绘制滤波器的频率响应。

示例 传递函数的频率响应

        计算并显示由以下传递函数描述的三阶IIR低通滤波器的幅度响应:

        将分子和分母表示为多项式卷积。 在整个单位圆上的2001个点处找到频率响应。

b0 = 0.05634; b1 = [1 1]; b2 = [1 -1.0166 1]; a1 = [1 -0.683]; a2 = [1 -1.4461 0.7957]; b = b0*conv(b1,b2); a = conv(a1,a2); [h,w] = freqz(b,a,'whole',2001); %绘制bode图 plot(w/pi,20*log10(abs(h))) ax = gca; ax.YLim = [-100 20]; ax.XTick = 0:.5:2; xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')

        如图所示:

二阶部分的频率响应

        计算并显示由以下传递函数描述的三阶IIR低通滤波器的幅度响应:

        用二阶部分表示传递函数。 在整个单位圆上的2001个点处找到频率响应。

b0 = 0.05634; b1 = [1 1]; b2 = [1 -1.0166 1]; a1 = [1 -0.683]; a2 = [1 -1.4461 0.7957]; sos1 = [b0*[b1 0] [a1 0]]; sos2 = [b2 a2]; [h,w] = freqz([sos1;sos2],'whole',2001); %% plot(w/pi,20*log10(abs(h))) ax = gca; ax.YLim = [-100 20]; ax.XTick = 0:.5:2; xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')

        如图所示:

FIR滤波器的频率响应

        使用β= 8的Kaiser窗设计80阶FIR低通滤波器。 指定标准化截止频率为0.5πrad /sample。 显示滤波器的幅度和相位响应。

b = fir1(80,0.5,kaiser(81,8)); freqz(b,1)

        如图所示:

        使用designfilt设计相同的过滤器。 使用fvtool显示其幅度和相位响应。

d = designfilt('lowpassfir','FilterOrder',80, ... 'CutoffFrequency',0.5,'Window',{'kaiser',8}); freqz(d)

        如图所示:

FIR带通滤波器的频率响应

        设计一个FIR带通滤波器,其通带在0.35π至0.8πrad/sample的范围内,并且纹波为3dB。 第一个阻带从0到0.1πrad /采样范围,衰减为40 dB。 第二个阻带从0.9πrad/sample到奈奎斯特频率,衰减为30dB。 计算频率响应。 用线性单位和分贝绘制其大小。 突出显示通带。

sf1 = 0.1; pf1 = 0.35; pf2 = 0.8; sf2 = 0.9; pb = linspace(pf1,pf2,1e3)*pi; bp = designfilt('bandpassfir', ... 'StopbandAttenuation1',40, 'StopbandFrequency1',sf1,... 'PassbandFrequency1',pf1,'PassbandRipple',3,'PassbandFrequency2',pf2, ... 'StopbandFrequency2',sf2,'StopbandAttenuation2',30); [h,w] = freqz(bp,1024); hpb = freqz(bp,pb); subplot(2,1,1) plot(w/pi,abs(h),pb/pi,abs(hpb),'.-') axis([0 1 -1 2]) legend('Response','Passband','Location','South') ylabel('Magnitude') subplot(2,1,2) plot(w/pi,db(h),pb/pi,db(hpb),'.-') axis([0 1 -60 10]) xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Magnitude (dB)')

        如图所示:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3